//
//  YBAuthApi.h
//  YBWifiAuthSDK
//
//  Created by yiban on 16/1/21.
//  Copyright © 2016年 yiban. All rights reserved.
//

#import <Foundation/Foundation.h>
typedef void (^YBAuthApiCompletionHandler)(id response,NSError *error);

@interface YBAuthApi : NSObject
{
    
}
@property(nonatomic,strong)NSString *access_token;
+ (instancetype)sharedYBAuthApi;
/*!
 设置deviceToken，用于远程推送
 
 @param deviceToken     从系统获取到的设备号deviceToken(需要去掉空格和尖括号)
 
 @discussion deviceToken是系统提供的，从苹果服务器获取的，用于APNs远程推送必须使用的设备唯一值。
 您需要将-application:didRegisterForRemoteNotificationsWithDeviceToken:获取到的deviceToken，转为NSString类型，并去掉其中的空格和尖括号，作为参数传入此方法。
 
 如:
 
 - (void)application:(UIApplication *)application
 didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
 NSString *token = [deviceToken description];
 token = [token stringByReplacingOccurrencesOfString:@"<" withString:@""];
 token = [token stringByReplacingOccurrencesOfString:@">" withString:@""];
 token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];
 [[YBAuthApi sharedYBAuthApi] setDeviceToken:token];
 }
 
 */
- (void)setDeviceToken:(NSString *)deviceToken;
/*
 *登录接口
 *参数说明
    account : 手机号/邮箱/用户名/易班ID    必填
    passwd  :  密码  必填
 */
- (void)loginWithParamter:(NSDictionary*)params completion:(YBAuthApiCompletionHandler)completionBlock;

//退出登录
- (void)logout;

//是否登录
- (BOOL)isLogin;

/*
 *手机号识别登录状态接口
 *名称 v1/passport/checkphone
 *请求 GET  http://{server_url}/v1/passport/checkphone
 *参数说明
    phone : 手机号码  必填
 *返回数据 API返回格式为JSON，返回JSON数组时以”[]“标出。
    ["response":"100","message":"请求成功","data":{"status":"1","users":[user]}]
 * data数据说明
     status ： 用户类型     1 手机绑定的老用户 2 未手机绑定的老用户或手机注册 3 可直接登录用户
     users：关联老账户数组， user具体字段如下
     id :用户id
     email:邮箱
     username：用户名
 */
- (void)checkPhoneNumberWithParamter:(NSDictionary*)params completion:(YBAuthApiCompletionHandler)completionBlock;

/*
 获取手机验证码接口
 
 *名称 v1/passport/authcode
 *请求 GET  http://{server_url}/v1/passport/authcode
 *参数说明
     phone : 手机号码  必填
     kind: 验证码类型 1 => 注册, 2 => 修改密码, 3 => 找回密码 ,4=>手机绑定 ，5=>登录设备绑定 必填
 *返回数据 API返回格式为JSON，返回JSON数组时以”[]“标出。
     ["response":"100","message":"请求成功","data":{"status":"1"}]
 * data数据说明
    status ： 是否成功发送验证码，0否1是
 */
- (void)getPhoneAuthCodeWithParamter:(NSDictionary*)params completion:(YBAuthApiCompletionHandler)completionBlock;

/*
验证用户验证码接口

*名称 v1/passport/checkcode
*请求 GET  http://{server_url}/v1/passport/checkcode
*参数说明
    account : 手机号码或者邮箱  必填
    code:  手机验证码 必填
    kind: 类型 1 注册，2 更换手机号，3 忘记密码，4 安全登录 选填
*返回数据 API返回格式为JSON，返回JSON数组时以”[]“标出。
    ["response":"100","message":"请求成功","data":{"status":"1"}]
* data数据说明
    status ： 是否验证成功，0否1是
*/
- (void)checkCodeWithParamter:(NSDictionary*)params completion:(YBAuthApiCompletionHandler)completionBlock;
//注册
- (void)registWithParamter:(NSDictionary*)params completion:(YBAuthApiCompletionHandler)completionBlock;
//
//
//
//
//
//
//
//
//
@end
